Deciding Properties of Lists using Containers
نویسنده
چکیده
We exploit the ability to represent data types as container functors [2,1,3] to develop a novel approach to proving properties of lists using arithmetic decision procedures. Containers capture the idea that concrete data types can be characterised by specifying the shape values take and for every possible shape, explaining where positions within that shape are stored. More importantly, a representation theorem guarantees that polymorphic functions between container data types are given by container morphisms, which are characterised by mappings between shapes and positions. The key to our approach is to restrict the shape maps of container morphisms to functions that have decidable equality, but which allow for a large class of functions. We also capture the behaviour of position mappings of container morphisms as functions on the natural numbers. The shape maps which we consider are given by piecewise-linear functions, of type Nn → N. Such functions are decidable, and this enables us to implement decision procedures for lists.
منابع مشابه
Aspects of the theory of containers within automated theorem proving
This thesis explores applications of the theory of containers within automated theorem proving. Container theory provides a foundational analysis of data types as containers, specified by a type S of shapes and a function P assigning to each shape its set of positions for data. More importantly, a representation theorem guarantees that polymorphic functions between container data types are give...
متن کاملProving Properties about Lists Using Containers
Bundy and Richardson [7] presented a technique for reasoning about lists using ellipsis (the dots in 1+2+ . . .+10), where a polymorphic function, denoted by 2, is used to encapsulate recursive definitions of list functions and a portrayal system using ellipsis gives an informal proof. We highlight certain limitations of this technique and address these limitations using the recently developed ...
متن کاملCorrect Code Containing Containers
For critical software development, containers such as lists, vectors, sets or maps are an attractive alternative to ad-hoc data structures based on pointers. As standards like DO-178C put formal verification and testing on an equal footing, it is important to give users the ability to apply both to the verification of code using containers. In this paper, we present a definition of containers w...
متن کاملOrganic and Hierarchical Concentric Layouts for Distributed System Visualization
Distributed systems, due to their inherent complexity and nondeterministic nature, are programmed using high-level abstractions, such as processes, actors, ambients, agents, or services. There is a need to provide tools which allow developers to better understand, test, and debug distributed systems. OverView is a software toolkit which allows online and offline visualization of distributed sys...
متن کاملProving Properties about Functions on Lists Involving Element Tests
Bundy and Richardson [4] developed a method for reasoning about functions manipulating lists which is based on separating shape from content, and then exploiting a mathematically convenient representation for expressing shape-only manipulations. Later, Prince et al. [7] extended the technique to other data structures, and gave it a more formal basis via the theory of containers. All these resul...
متن کامل